Segment Routing, SR, is an emerging technology which may be used in both IP and MPLS packet networks and which may be used in both a distributed control plane environment (e.g. IP/MPLS control plane) and in a centralised control plane environment (e.g. SDN, Software Defined Networking).
Segment Routing, as defined by the IETF, enables enhanced packet routing, offering the ability to provide strict network performance guarantees whilst making more efficient use of network resources and providing greater scalability than other label-switched routing technologies which require a signalling protocol, for example RSVP-TE (Resource Reservation Protocol-Traffic Engineering), to preconfigure end-to-end paths for data packets.
SR is based on two concepts: Node Segment and Adjacency Segment. As illustrated in FIG. 1 in respect of node Z 25, in Node Segment, each node 25 in a packet network 20 is assigned a global, unique Segment identifier (e.g. a label), which is stored in the Segment Routing data plane of each of the other nodes 25 in the network 20. As indicated in FIG. 1, in this example, node Z 25 is assigned Segment identifier 65. When a packet is injected at any of the other nodes 25 in the network 20 with this Segment identifier, 65, then that node 25 will forward the packet to node Z 25, via an ECMP (Equal-Cost Multi-Path) aware shortest path. In contrast, in Adjacency Segment, a Segment identifier is assigned to a pre-selected path from a first node 25 to a second node 25 in the network 20, and this Segment identifier is stored in the Segment Routing data plane of the first node 25 only. Thus, it should be appreciated that this Segment identifier does need to be a globally unique identifier. As illustrated in FIG. 2, by way of example, Adjacency Segment identifier 9003, stored at node C 10, indicates that a packet received at node C 10 having that Segment identifier, should be routed though the link CF to node F 10.
A path computation entity (e.g. a PCE or an SDN packet network controller) determines an end-to-end path for data packets across the packet network, and encodes this path as a set of ordered labels. Each label, as explained above, identifies a segment of the path, and defines the characteristics of that segment. The set of labels is then sent to the ingress network node, which includes the labels in the header of the data packets. The ingress network node reads the outer or uppermost label, and routes the data packets accordingly over the identified network segment to a further network node. The further network node drops the uppermost label, reads the next label and routes the data packets accordingly over the identified network segment and so on, until the data packets reach the egress network node.
Thus, Segment Routing provides an advantageous way of routing data packets over a packet network.